/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ModeloDominio;

import ModeloDominio.Enumerados.TipoUtente;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;

/**
 *
 * @author LCF
 */
@Entity
@Table(name = "UTENTE")
public class Utente implements Serializable {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Basic(optional = false)
    @Column(name = "ID")
    private Integer id;

    @Column(name = "NOME")
    private String nome;

    @Column(name = "DATANASCIMENTO")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataNascimento;

    @Column(name = "SEXO")
    private char sexo;

    @Column(name = "NACIONALIDADE")
    private String nacionalidade;

    @Column(name = "NATURALIDADE")
    private String naturalidade;

    @Column(name = "NIF")
    private String nif;

    @Column(name = "TELEFONE")
    private String telefone;

    @Column(name = "FAX")
    private String fax;

    @Column(name = "MAIL")
    private String mail;

    @Column(name = "NCHEQUES")
    private int nCheques;

    @Column(name = "TIPO")
    private String tipo;

    @Column(name = "MORADA_ID")
    private int idmorada;


    // Construtores-------------------------------------------------------------
    public Utente() {
    }

    public Utente(String nif) {
        this.nif = nif;
    }

    public Utente(String nome, Date dataNascimento, char sexo, String nacionalidade, String naturalidade, String nif, int[] telefone, int[] fax, String[] mail) {
        this.nome = nome;
        this.dataNascimento = dataNascimento;
        this.sexo = sexo;
        this.nacionalidade = nacionalidade;
        this.naturalidade = naturalidade;
        this.nif = nif;
        this.nCheques=0;
    }

    // Getters e Setters
    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public int getnCheques() {
        return nCheques;
    }

    public void setnCheques(int nCheques) {
        this.nCheques = nCheques;
    }

    public Date getDatadeNascimento() {
        return dataNascimento;
    }

    public int getNCheques() {
        return nCheques;
    }

    public String getNaturalidade() {
        return naturalidade;
    }

    public String getNif() {
        return nif;
    }

    public String getNome() {
        return nome;
    }

    public String getNacionalidade() {
        return nacionalidade;
    }

    public char getSexo() {
        return sexo;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

    public String getTelefone() {
        return telefone;
    }

    public int getIdmorada() {
        return idmorada;
    }

    public void setIdmorada(int idmorada) {
        this.idmorada = idmorada;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }


    public void setNacionalidade(String nacionalidade) {
        this.nacionalidade = nacionalidade;
    }

    public void setNaturalidade(String naturalidade) {
        this.naturalidade = naturalidade;
    }

    public void setNif(String nif) {
        this.nif = nif;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setSexo(char sexo) {
        this.sexo = sexo;
    }

 

    // Outras funcoes-----------------------------------------------------------
    public int nChequesGravida()
    {
        return 3;
    }

    public int nChequesIdoso()
    {
        return 2;
    }

    public void usarCheque(int cheque, String codSeg)
    {

    }
//-------------------------------------------------------------------
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Utente)) {
            return false;
        }
        Utente other = (Utente) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Utente[id=" + id + "]";
    }
}



